﻿using System;
using System.IO;
using System.Runtime.Serialization.Json;

namespace _028_将类型实例序例化为JSON格式
{
    class Program
    {
        static void Main(string[] args)
        {
            string 文件名称 = "zoomlacms2.xml";
            if (File.Exists(文件名称))
                File.Delete(文件名称);

            //执行序列化
            using (FileStream 序列化流=File.Open(文件名称,FileMode.OpenOrCreate))
            {
                宠物表[] 爱宠数据定义 =
                {
                    new 宠物表{Name="Dog A",Age=3,Owner="Jack"},
                    new 宠物表{Name="Cate E",Age=2,Owner="Bob"}
                };

                DataContractJsonSerializer 创xml = new DataContractJsonSerializer(爱宠数据定义.GetType());
                创xml.WriteObject(序列化流, 爱宠数据定义);
            }

            //执行反序列化
            using (FileStream 反序列化=File.OpenRead(文件名称))
            {
                DataContractJsonSerializer 操作手柄 = new DataContractJsonSerializer(typeof(宠物表[]));
                宠物表[] 狗们的流 = (宠物表[])操作手柄.ReadObject(反序列化);

                //输出数组中的元素
                foreach (宠物表 item in 狗们的流)
                {
                    Console.WriteLine($"Name:{item.Name}\nAge:{item.Age}\nOwner:{item.Owner}\n");
                }
            }

        }
    }

    public class 宠物表
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Owner { get; set; }
    }
}
